package com.shujia.scala

object Demo12Fun {
  def main(args: Array[String]): Unit = {
    /**
     * 以函数作为参数的应用
     *
     */

    val array = Array(1, 2, 3, 4, 5, 6, 7, 8, 9)


    /**
     * foreach:循环数组中的元素一个一个传递给后面的函数
     *
     * Any:相当于java中的Object
     *
     */
    def f(i: Int): Unit = println(i)


    array.foreach(f)
    println("=" * 100)

    //lambda表达式
    array.foreach((i: Int) => println(i))
    println("=" * 100)
    //简写
    array.foreach(i => println(i))
    println("=" * 100)
    //简写
    array.foreach(println(_))
    println("=" * 100)

    //  def println(x: Any): Unit = Console.println(x)
    //可以直接将println传递给foreach,
    //面向函数编程也可以使用多态
    array.foreach(println)


  }

}
